package com.example.springboot.common.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import jakarta.annotation.Resource;

@Configuration
public class WebConfig implements  WebMvcConfigurer {

    @Resource
    private JwtInterceptor jwtInterceptor;

    // 加自定义拦截器JwtInterceptor，设置拦截规则
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注意放行的是接口，即通过页面能否访问到数据，而非能否访问到页面
        registry.addInterceptor(jwtInterceptor).addPathPatterns("/**")
                .excludePathPatterns("/Account/login") //注意登录接口要放行，因为登录不需要token，登录时生成token，登录后调用其他接口才需要token
                .excludePathPatterns("/Account/register") //放行注册接口，人人都可以注册用户
                .excludePathPatterns("/files/**") //放行文件上传接口，便于上传头像等
                .excludePathPatterns("/News/**") //放行新闻接口，便于轮播公告等
                .excludePathPatterns("/Goods/**") //放行商品接口，便于浏览商品等
                .excludePathPatterns("/Combo/**") //放行套餐接口，便于浏览套餐等
                .excludePathPatterns("/Clazz/**") //放行分类接口，便于分类浏览
                .excludePathPatterns("/Order_of/**") //放行订单接口，便于查询订单
                .excludePathPatterns("/User/**") //放行用户接口，便于登录
                .excludePathPatterns("/Addressbook/**") //放行地址接口，便于找地址
                .excludePathPatterns("/shenhe/**") //放行反馈接口，便于找反馈
        ;
    }
}
